package org.rayken.trix.commons.game.runTypes;

import org.rayken.trix.commons.game.Game;
import org.rayken.trix.commons.game.Player;
import org.rayken.trix.commons.game.Run;
import org.rayken.trix.commons.game.RunType;

public class RunFactory {
	public static Run createRun(RunType runType, Game game, Player caller, boolean forced){
		switch (runType) {
			case THE_KING_OF_HEARTS:
				return new KingOfHeartsRun(game, caller, forced);	
			case EVIL_QUEENS:
				return new EvilQueensRun(game, caller, forced);
			case POISONOUS_DIAMONDS:
				return new PoisonousDiamondsRun(game, caller, forced);
			case THE_LAST_FOOL:
				return new TheLastFoolRun(game, caller, forced);
			case GENERAL_WAREFARE:
				return new GeneralWarefareRun(game, caller, forced);
			case TRIX:
				return new TrixRun(game, caller, forced);
			default:
				throw new IllegalAccessError("runType: " + runType + " is unknown");
		}
		
	}
}
